package org.dromara.student.domain.bo;

import org.dromara.student.domain.XjStudentTaskAnswer;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;

/**
 * 学生答案业务对象 xj_student_task_answer
 *
 * @author Lion Li
 * @date 2024-12-17
 */
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = XjStudentTaskAnswer.class, reverseConvertGenerate = false)
public class XjStudentTaskAnswerBo extends BaseEntity {

    /**
     * 答案id
     */
    @NotBlank(message = "答案id不能为空", groups = { EditGroup.class })
    private String answerId;

    /**
     * 题目内容
     */
    @NotBlank(message = "题目内容不能为空", groups = { AddGroup.class, EditGroup.class })
    private String questionTxt;

    /**
     * 题目类型
     */
    @NotBlank(message = "题目类型不能为空", groups = { AddGroup.class, EditGroup.class })
    private String questionType;

    /**
     * 题目序号
     */
    @NotNull(message = "题目序号不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long questionOrder;

    /**
     * 关联题目id
     */
    @NotBlank(message = "关联题目id不能为空", groups = { AddGroup.class, EditGroup.class })
    private String questionId;

    /**
     * 关联作业id
     */
    @NotBlank(message = "关联作业id不能为空", groups = { AddGroup.class, EditGroup.class })
    private String taskId;

    /**
     * 答案内容
     */
    @NotBlank(message = "答案内容不能为空", groups = { AddGroup.class, EditGroup.class })
    private String answerTxt;

    /**
     * AI返回的答案建议
     */
    @NotBlank(message = "AI返回的答案建议不能为空", groups = { AddGroup.class, EditGroup.class })
    private String answerSuggestion;

    /**
     * 对应每题答案的得分
     */
    @NotNull(message = "对应每题答案的得分不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long answerScore;

    /**
     * 大模型返回JSON
     */
    @NotBlank(message = "大模型返回JSON不能为空", groups = { AddGroup.class, EditGroup.class })
    private String glipJson;


}
